package com.crm.manager.domain.vo;

import com.crm.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ActivityTableVo implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 主键ID，自增 */
    private Integer id;

    /** 活动开始时间 */
    @JsonProperty
    @JsonIgnore
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//    @DateTimeFormat(pattern = "yyyy - MM - dd HH:mm:ss")
    @Excel(name = "活动开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date beginTime;

    /** 活动结束时间 */
    @JsonProperty
    @JsonIgnore
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//    @DateTimeFormat(pattern = "yyyy - MM - dd HH:mm:ss")
    @Excel(name = "活动结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 活动渠道: 1-线上活动, 2-推广介绍 */
    @Excel(name = "活动渠道: 1-线上活动, 2-推广介绍")
    private Integer channel;

    /** 活动代码 */
    @Excel(name = "活动代码")
    private String code;

    /** 折扣金额 */
    @Excel(name = "折扣金额")
    private Double discount;

    /** 活动信息 */
    @Excel(name = "活动信息")
    private String info;

    /** 活动名称 */
    @Excel(name = "活动名称")
    private String name;

    /** 活动状态: 1-待审核, 2-已通过, 3-已驳回, 4-已结束 */
    @Excel(name = "活动状态: 1-待审核, 2-已通过, 3-已驳回, 4-已结束")
    private Integer status;

    /** 活动类型: 1-课程折扣, 2-课程代金券 */
    @Excel(name = "活动类型: 1-课程折扣, 2-课程代金券")
    private Integer type;

    private String createBy;
    @JsonIgnore
    private Date createTime;
    private String updateBy;
    @JsonIgnore
    private Date updateTime;
}
